package com.yfp.operation.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yfp.common.core.annotation.Excel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 
 * @version 1.0
 * @date 2025-03-05 11:48
 */
@Data
public class MallOrderListVO {

    /**
     * 商城订单id
     */
    @Schema(description = "商城订单id")
    private Long id;

    /**
     * 订单编号
     */
    @Schema(description = "订单编号")
    @Excel(name = "订单编号", needMerge = true, sort = 1)
    private String orderSn;

    /**
     * 支付订单编号
     */
    @Schema(description = "支付订单编号")
    @Excel(name = "支付方订单编号", needMerge = true, sort = 2)
    private String paySn;

    /**
     * 订单状态1待支付2待收货3已完成4已退款5已取消6退款中7代发货
     */
    @Schema(description = "订单状态1待支付2待收货3已完成4已退款5已取消6退款中7代发货")
    @Excel(name = "订单状态", needMerge = true, sort = 3, readConverterExp = "1=待支付,2=代收款,3=已完成,4=已退款,5=已取消,6=退款中,7=代发货")
    private Integer status;

    /**
     * 物流状态0：快递收件(揽件)1.在途中 2.正在派件 3.已签收 4.派送失败 5.疑难件 6.退件签收'
     */
    @Schema(description = "物流状态0：快递收件(揽件)1.在途中 2.正在派件 3.已签收 4.派送失败 5.疑难件 6.退件签收'")
    @Excel(name = "物流状态", needMerge = true, sort = 4, readConverterExp = "0=揽件,1=在途中,2=正在派件,3=已签收,4=派送失败,5=疑难件,6=退件签收")
    private Integer logisticsStatus;

    /**
     * 下单时间
     */
    @Schema(description = "下单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "下单时间", needMerge = true, sort = 5, dateFormat = "yyyy-MM-dd HH:mm")
    private Date createTime;

    /**
     * 操作时间
     */
    @Schema(description = "操作时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date updateTime;

    /**
     * 用户名称
     */
    @Schema(description = "用户名称")
    @Excel(name = "用户名称", needMerge = true, sort = 6)
    private String nickName;

    /**
     * 收货手机号码
     */
    @Schema(description = "收货手机号码")
    @Excel(name = "手机号", needMerge = true, sort = 9)
    private String mobile;

    /**
     * 收货地址
     */
    @Schema(description = "收货地址")
    @Excel(name = "地址", needMerge = true, sort = 7)
    private String address;

    /**
     * 所在城市
     */
    @Schema(description = "所在城市")
    @Excel(name = "所在城市", needMerge = true, sort = 8)
    private String cityName;

    /**
     * 支付时间
     */
    @Schema(description = "支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "支付时间", needMerge = true, sort = 10, dateFormat = "yyyy-MM-dd HH:mm")
    private Date payTime;

    /**
     * 商品名称
     */
    @Schema(description = "商品名称")
    @Excel(name = "商品名称", needMerge = true, sort = 11)
    private String productName;

    /**
     * 商品主图
     */
    @Schema(description = "商品主图")
    private String productHeadimg;

    /**
     * 商品价格
     */
    @Schema(description = "商品价格")
    private BigDecimal price;

    /**
     * 积分
     */
    @Schema(description = "积分")
    private Long integral;

    /**
     * 销售价格
     */
    @Schema(description = "销售价格")
    @Excel(name = "销售价格", needMerge = true, sort = 12)
    private String sellPrice;


    /**
     * 销售类型 1现金支付2积分兑换3现金+积分
     */
    @Schema(description = "销售类型 1现金支付2积分兑换3现金+积分")
    @Excel(name = "销售类型", needMerge = true, sort = 13, readConverterExp = "1=现金支付,2=积分兑换,3=现金+积分")
    private Integer mallProductType;

    /**
     * 快递单号
     */
    @Schema(description = "快递单号")
    private String logisticsSn;



}
